Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

206

Games Picked

282

Number of predictions

100

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Kansas City Chiefs Kansas City Chiefs Yes 86 0.86
2 Detroit Lions Washington Commanders No 20 0.20
3 Philadelphia Eagles Philadelphia Eagles Yes 78 0.78
4 Buffalo Bills Buffalo Bills Yes 57 0.57

Individual Predictions

row

Individual Table

Individual Results
Week 20
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Week 13 Week 14 Week 15 Week 16 Week 17 Week 18 Week 19 Week 20
Christopher Sims 11 9 10 8 7 10 12 14 11 9 8 9 16 10 11 11 13 10 4 4 1.00 20 0.6986 0.6986
Cade Martinez 10 7 8 8 6 11 11 9 10 10 9 8 15 11 13 11 14 8 4 4 1.00 20 0.6631 0.6631
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 8 8 14 7 14 NA 13 8 4 4 1.00 16 0.6621 0.5297
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 9 7 15 9 15 13 11 8 3 4 1.00 18 0.6429 0.5786
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 10 8 NA 8 12 12 NA NA 4 4 1.00 15 0.5980 0.4485
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 NA 7 NA NA 3 6 NA NA NA 4 1.00 12 0.5294 0.3176
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 10 11 16 10 12 12 15 12 3 3 0.75 20 0.7305 0.7305
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 11 10 14 10 12 12 14 12 3 3 0.75 20 0.7234 0.7234
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 9 7 15 7 11 11 15 12 4 3 0.75 20 0.7092 0.7092
Marc Agne 14 7 9 13 6 13 10 9 12 10 10 7 16 9 13 12 13 9 5 3 0.75 20 0.7092 0.7092
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 9 8 16 10 14 13 11 10 5 3 0.75 20 0.6986 0.6986
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 10 9 14 9 13 12 14 9 3 3 0.75 20 0.6915 0.6915
Jason Schattel 13 7 6 9 10 11 9 10 11 9 10 10 13 9 13 12 14 12 4 3 0.75 20 0.6915 0.6915
Nicole Dike 13 7 8 10 7 10 10 12 10 9 10 8 15 9 13 13 15 8 4 3 0.75 20 0.6879 0.6879
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 13 9 15 11 14 NA 12 8 NA 3 0.75 17 0.6844 0.5817
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 NA 9 15 10 10 NA 12 NA NA 3 0.75 15 0.6822 0.5116
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 12 10 NA 11 11 NA 13 10 NA 3 0.75 17 0.6803 0.5783
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 10 8 16 10 13 11 NA 10 4 3 0.75 19 0.6767 0.6429
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 12 8 16 11 12 10 NA 7 4 3 0.75 16 0.6743 0.5394
Daniel Baller 14 6 9 8 7 9 10 12 10 10 10 10 15 10 12 11 12 9 3 3 0.75 20 0.6738 0.6738
George Sweet 13 9 6 10 11 9 11 11 12 7 10 11 12 9 12 12 10 8 4 3 0.75 20 0.6738 0.6738
Rafael Torres 12 9 8 7 8 10 12 10 12 11 11 7 12 10 NA 11 NA 11 4 3 0.75 18 0.6720 0.6048
Scott Lefton 10 8 8 7 7 11 11 10 11 10 10 8 15 10 14 11 NA NA 4 3 0.75 18 0.6720 0.6048
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA NA 9 14 10 NA NA NA 10 NA 3 0.75 13 0.6720 0.4368
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 12 8 15 10 16 10 NA 9 5 3 0.75 18 0.6706 0.6035
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 7 9 12 10 13 12 11 9 4 3 0.75 20 0.6702 0.6702
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 12 7 15 9 NA 12 NA 9 NA 3 0.75 17 0.6680 0.5678
David Plate 10 8 8 8 9 NA NA NA 13 10 8 9 14 NA 12 11 12 10 4 3 0.75 16 0.6652 0.5322
Karen Richardson 10 9 7 9 11 8 8 12 8 10 9 9 13 10 14 12 NA 9 4 3 0.75 19 0.6579 0.6250
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 9 10 NA 8 13 9 11 NA 3 3 0.75 16 0.6560 0.5248
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 8 10 NA 9 NA 11 NA NA NA 3 0.75 15 0.6557 0.4918
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 10 9 NA 9 16 11 12 NA 3 3 0.75 18 0.6520 0.5868
Daniel Major 8 10 11 6 8 11 NA 10 10 10 11 9 14 11 9 NA 8 NA 4 3 0.75 17 0.6511 0.5534
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 10 9 13 11 12 10 12 9 5 3 0.75 19 0.6493 0.6168
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 12 7 14 9 13 10 12 8 3 3 0.75 18 0.6443 0.5799
Louie Renew 9 8 12 4 10 8 8 11 11 8 10 9 NA 10 10 13 13 9 5 3 0.75 19 0.6429 0.6108
Walter Archambo 8 8 7 9 6 12 11 11 12 10 10 9 15 9 9 9 12 8 3 3 0.75 20 0.6418 0.6418
Rachel Follo 15 8 6 6 9 7 10 11 9 9 10 7 13 11 11 8 13 10 4 3 0.75 20 0.6383 0.6383
Kristen White 14 7 9 9 8 9 9 8 8 9 9 8 13 8 14 9 10 9 NA 3 0.75 19 0.6268 0.5955
Diance Durand 9 9 12 7 8 10 9 11 11 7 9 8 12 NA 11 7 10 11 2 3 0.75 19 0.6171 0.5862
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 7 8 15 NA 13 13 11 10 NA 3 0.75 17 0.6169 0.5244
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 11 8 16 11 11 10 12 8 NA 3 0.75 19 0.6123 0.5817
Kyle May 10 8 5 6 8 NA 12 10 9 8 8 8 13 7 13 12 NA NA NA 3 0.75 16 0.6087 0.4870
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA NA 7 13 4 12 NA NA NA 4 3 0.75 12 0.6074 0.3644
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 8 NA NA 10 9 NA 12 8 3 3 0.75 16 0.5785 0.4628
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 11 10 16 11 13 12 13 7 4 2 0.50 13 0.7572 0.4922
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 11 10 NA 10 13 12 14 12 3 2 0.50 19 0.7331 0.6964
Robert Gelo 14 8 9 9 8 13 13 11 12 10 10 9 12 11 11 13 14 10 2 2 0.50 20 0.7128 0.7128
Chester Todd 13 8 8 8 9 13 13 10 9 9 11 9 15 10 12 13 14 NA 3 2 0.50 19 0.7105 0.6750
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 NA 10 16 11 14 9 14 10 3 2 0.50 19 0.6978 0.6629
Randy Dick 11 7 8 8 9 14 10 10 13 11 10 9 14 10 12 12 13 10 3 2 0.50 20 0.6950 0.6950
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 10 NA NA NA 14 NA NA NA NA 2 0.50 9 0.6935 0.3121
Erik Neumann 12 8 9 9 7 13 10 11 12 9 10 NA NA 10 15 11 NA 12 4 2 0.50 17 0.6920 0.5882
William Schouviller 12 7 9 9 11 13 10 9 NA 7 11 8 15 11 13 11 11 11 3 2 0.50 19 0.6854 0.6511
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 8 9 12 8 14 11 10 10 5 2 0.50 18 0.6840 0.6156
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 10 9 14 9 12 11 12 6 3 2 0.50 19 0.6816 0.6475
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 8 8 13 9 14 12 12 10 4 2 0.50 20 0.6809 0.6809
Keven Talbert 10 7 9 11 9 14 13 9 9 11 10 10 12 10 10 12 NA 10 3 2 0.50 19 0.6805 0.6465
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 9 10 14 9 14 11 NA 9 4 2 0.50 19 0.6805 0.6465
Edward Ford 9 7 6 10 5 10 10 13 11 9 12 10 14 11 14 11 12 11 4 2 0.50 20 0.6773 0.6773
Stephen Bush 9 7 4 10 9 13 13 9 10 10 8 9 16 10 13 13 13 8 4 2 0.50 20 0.6738 0.6738
Shawn Carden 10 9 10 10 8 11 10 11 11 9 8 8 15 9 14 11 NA 8 4 2 0.50 19 0.6692 0.6357
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 8 9 13 9 13 10 13 12 4 2 0.50 20 0.6631 0.6631
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 7 10 12 10 13 12 NA 12 5 2 0.50 19 0.6617 0.6286
George Mancini 11 8 6 NA 8 6 12 NA 11 9 11 10 13 11 NA 12 NA 10 NA 2 0.50 15 0.6604 0.4953
Michael Moss 13 8 8 8 10 13 8 9 11 9 10 6 11 10 12 12 13 9 3 2 0.50 20 0.6560 0.6560
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 9 9 14 11 12 11 11 9 3 2 0.50 20 0.6560 0.6560
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 10 9 14 9 10 10 NA 8 3 2 0.50 16 0.6545 0.5236
Montee Brown 10 6 8 7 8 14 11 10 8 10 10 9 14 8 13 11 11 10 4 2 0.50 20 0.6525 0.6525
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 10 10 16 10 NA 9 12 9 5 2 0.50 19 0.6504 0.6179
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 8 8 14 9 11 12 NA 9 4 2 0.50 19 0.6504 0.6179
Michael Branson 9 8 8 9 8 11 9 11 10 9 11 7 14 9 13 10 11 NA 4 2 0.50 19 0.6504 0.6179
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 12 9 16 10 13 11 NA 8 NA 2 0.50 16 0.6494 0.5195
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 NA 8 15 11 11 9 13 10 5 2 0.50 19 0.6493 0.6168
David Humes 10 9 8 11 5 8 12 8 12 11 11 6 14 9 9 12 13 9 4 2 0.50 20 0.6489 0.6489
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 8 9 11 8 11 12 NA 12 3 2 0.50 15 0.6473 0.4855
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 8 NA 14 NA 12 13 13 NA 5 2 0.50 17 0.6458 0.5489
George Brown 14 7 8 7 6 11 10 12 9 12 11 8 12 11 10 7 12 10 3 2 0.50 20 0.6454 0.6454
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 9 7 12 NA 11 13 12 11 4 2 0.50 19 0.6431 0.6109
James Small 12 NA 9 10 8 10 9 9 10 10 NA 6 11 8 13 11 13 7 4 2 0.50 18 0.6429 0.5786
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 11 9 14 10 10 12 NA 10 3 2 0.50 18 0.6375 0.5738
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 13 10 13 11 NA 13 12 9 5 2 0.50 19 0.6316 0.6000
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 9 10 NA 8 13 11 15 NA 2 2 0.50 17 0.6255 0.5317
Terry Hardison 13 8 6 7 4 11 10 12 11 9 11 7 NA NA 11 10 13 8 4 2 0.50 18 0.6206 0.5585
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 9 9 12 10 12 9 NA 11 NA 2 0.50 15 0.6186 0.4640
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 7 9 11 8 11 13 15 NA 6 2 0.50 17 0.6154 0.5231
Melissa Printup 8 9 9 6 10 10 10 10 7 10 9 8 13 7 13 11 11 8 2 2 0.50 20 0.6135 0.6135
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 11 8 12 8 13 9 11 10 3 2 0.50 19 0.6128 0.5822
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 10 7 15 11 9 11 NA 10 3 2 0.50 18 0.6032 0.5429
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 9 9 10 9 NA NA NA 8 NA 2 0.50 13 0.5659 0.3678
Brenton Jones NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2 0.50 1 0.5000 0.0250
David Dupree 13 8 10 9 7 11 11 11 12 NA 9 8 13 10 12 12 13 9 4 1 0.25 19 0.6828 0.6487
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA NA 8 14 10 NA 11 11 8 4 1 0.25 16 0.6396 0.5117
Jason Jackson 12 7 5 6 5 12 9 11 10 10 12 9 NA 10 13 12 13 11 2 1 0.25 19 0.6391 0.6071
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 11 10 16 9 12 12 11 8 3 1 0.25 20 0.6348 0.6348
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 9 7 NA 11 11 10 NA 8 3 1 0.25 18 0.6240 0.5616
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA NA NA 11 NA NA 8 12 NA NA 1 0.25 11 0.6164 0.3390
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA NA NA NA NA NA NA NA NA NA 1 0.25 7 0.6122 0.2143
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 8 6 5 10 9 NA 9 8 NA 1 0.25 16 0.5129 0.4103
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 9 10 NA 11 14 NA 12 11 4 0 0.00 17 0.6496 0.5522
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.8750 0.0438
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.8571 0.0429
Matthew Blair NA NA NA NA NA 11 10 12 10 9 11 8 15 11 15 10 NA NA NA NA 0.00 11 0.7531 0.4142
Wallace Savage 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.7500 0.0375
Brian Holder 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.7500 0.0375
Sandra Carter 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.7500 0.0375
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 11 NA 13 NA 14 13 13 NA NA NA 0.00 12 0.7312 0.4387
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 NA 10 12 9 NA NA NA NA NA NA 0.00 9 0.7231 0.3254
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 10 10 14 10 12 12 NA NA 4 NA 0.00 16 0.7155 0.5724
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 10 6 16 11 13 NA 12 12 NA NA 0.00 16 0.7054 0.5643
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 11 7 16 10 11 12 NA 8 NA NA 0.00 16 0.7025 0.5620
Gregory Brown 15 7 6 9 8 12 9 9 13 9 10 9 15 12 13 12 NA NA NA NA 0.00 16 0.7000 0.5600
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 9 10 14 NA NA NA NA NA 4 NA 0.00 11 0.6968 0.3832
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 NA NA NA NA NA NA NA NA NA NA 0.00 3 0.6957 0.1044
Terrence Lee 11 NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA NA 0.00 2 0.6897 0.0690
Daniel Gray 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.6875 0.0344
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 9 9 14 10 14 11 NA NA NA NA 0.00 15 0.6830 0.5123
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 11 10 13 10 14 10 14 9 5 NA 0.00 19 0.6799 0.6459
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA NA NA NA NA NA 10 NA NA NA NA 0.00 2 0.6774 0.0677
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 11 10 14 9 11 9 11 NA NA NA 0.00 17 0.6758 0.5744
Ramar Williams 10 8 7 11 8 11 11 10 8 8 9 8 13 10 12 14 14 11 4 NA 0.00 19 0.6727 0.6391
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 10 8 14 10 NA NA NA NA NA NA 0.00 12 0.6705 0.4023
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 11 10 13 10 14 8 10 10 4 NA 0.00 19 0.6691 0.6356
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 10 10 15 11 10 12 NA NA 4 NA 0.00 16 0.6638 0.5310
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 9 NA NA NA NA NA NA NA NA NA 0.00 11 0.6627 0.3645
Daniel Halse 12 6 8 10 7 13 9 11 11 11 NA 8 14 9 12 12 NA 7 NA NA 0.00 16 0.6612 0.5290
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 8 11 12 11 12 8 NA 8 NA NA 0.00 17 0.6602 0.5612
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 10 8 NA 9 14 14 NA NA 3 NA 0.00 14 0.6600 0.4620
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 NA 8 14 8 NA 12 NA NA NA NA 0.00 13 0.6582 0.4278
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 10 8 15 9 13 10 NA NA NA NA 0.00 16 0.6542 0.5234
George Hall 12 NA 8 NA NA NA NA NA NA 10 NA NA NA NA NA NA NA NA NA NA 0.00 3 0.6522 0.0978
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 10 6 NA 8 12 9 13 NA 4 NA 0.00 15 0.6465 0.4849
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 11 10 13 9 NA 9 9 11 NA NA 0.00 17 0.6445 0.5478
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 10 9 16 9 13 11 NA NA NA NA 0.00 15 0.6416 0.4812
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 10 8 13 9 11 10 10 8 NA NA 0.00 18 0.6360 0.5724
Paul Presti 12 8 9 12 7 11 8 10 NA 10 9 NA NA NA NA NA NA NA NA NA 0.00 10 0.6358 0.3179
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 NA NA 13 9 11 NA NA NA NA NA 0.00 11 0.6347 0.3491
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA NA NA 15 NA NA NA NA NA NA NA 0.00 8 0.6320 0.2528
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 12 8 11 NA 12 NA NA NA NA NA 0.00 12 0.6278 0.3767
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 8 5 14 9 12 12 7 NA 3 NA 0.00 18 0.6221 0.5599
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA NA NA 15 NA NA NA NA NA NA NA 0.00 7 0.6168 0.2159
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 8 7 NA 10 NA 11 NA NA NA NA 0.00 12 0.6111 0.3667
David Hadley 13 10 8 NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 5 0.6104 0.1526
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 NA NA 14 NA NA 9 NA 7 NA NA 0.00 13 0.6100 0.3965
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA 0.00 5 0.6026 0.1506
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 6 0.6022 0.1807
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA 0.00 6 0.5978 0.1793
Derrick Elam 13 9 8 11 7 10 8 9 NA NA NA 7 NA 7 NA NA NA NA NA NA 0.00 10 0.5973 0.2987
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 9 10 NA NA 10 9 NA 9 NA NA 0.00 13 0.5939 0.3860
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 2 0.5938 0.0594
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 4 0.5938 0.1188
Adam Konkle 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 2 0.5938 0.0594
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA NA NA NA NA NA NA NA NA NA NA 0.00 7 0.5888 0.2061
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 6 0.5824 0.1747
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 6 0.5806 0.1742
Joseph Martin 10 7 8 8 8 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 7 0.5607 0.1962
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA NA NA NA NA NA NA NA NA NA NA 0.00 5 0.5526 0.1382
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 4 0.5484 0.1097
Donald Park 9 NA 6 NA NA 10 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 3 0.5435 0.0815
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA NA 6 NA 9 NA NA NA NA NA NA 0.00 9 0.5407 0.2433
Monte Henderson 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 2 0.5312 0.0531
David Kim 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 2 0.5312 0.0531
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 6 0.5217 0.1565
Jay Kelly 10 9 7 7 5 10 7 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 7 0.5140 0.1799
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.5000 0.0250
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.5000 0.0250
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 4 0.5000 0.1000
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 5 9 8 NA NA NA NA NA NA NA 0.00 6 0.4831 0.1449
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA NA NA NA NA NA NA NA NA NA NA 0.00 5 0.4805 0.1201
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2 NA 0.00 3 0.4474 0.0671
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.3750 0.0188
Robert Epps NA 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.00 1 0.3750 0.0188

Season Leaderboard

Season Leaderboard (Season Percent)
Week 20
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0438
2 Tanaysa Henderson 0 1 0.8571 0.0429
3 Brittany Pillar 1 13 0.7572 0.4922
4 Matthew Blair 0 11 0.7531 0.4142
5 Brian Holder 0 1 0.7500 0.0375
5 Sandra Carter 0 1 0.7500 0.0375
5 Wallace Savage 0 1 0.7500 0.0375
8 Robert Cunningham 1 19 0.7331 0.6964
9 Michael Linder 0 12 0.7312 0.4387
10 Aubrey Conn 4 20 0.7305 0.7305
11 Michael Pacifico 2 20 0.7234 0.7234
12 Steven Maisonneuve 1 9 0.7231 0.3254
13 Nathan Brown 1 16 0.7155 0.5724
14 Robert Gelo 1 20 0.7128 0.7128
15 Chester Todd 1 19 0.7105 0.6750
16 Chris Papageorge 2 20 0.7092 0.7092
16 Marc Agne 2 20 0.7092 0.7092
18 Patrick Tynan 2 16 0.7054 0.5643
19 Randolph Tidd 1 16 0.7025 0.5620
20 Gregory Brown 2 16 0.7000 0.5600
21 Christopher Sims 3 20 0.6986 0.6986
21 Jeremy Stieler 1 20 0.6986 0.6986
23 Bradley Hobson 1 19 0.6978 0.6629
24 Heather Kohler 0 11 0.6968 0.3832
25 Jeremy Krammes 0 3 0.6957 0.1044
26 Randy Dick 1 20 0.6950 0.6950
27 Jeremy Mounce 0 9 0.6935 0.3121
28 Erik Neumann 1 17 0.6920 0.5882
29 Anthony Bloss 0 20 0.6915 0.6915
29 Jason Schattel 1 20 0.6915 0.6915
31 Terrence Lee 0 2 0.6897 0.0690
32 Nicole Dike 1 20 0.6879 0.6879
33 Daniel Gray 0 1 0.6875 0.0344
34 William Schouviller 1 19 0.6854 0.6511
35 Thomas Brenstuhl 1 17 0.6844 0.5817
36 Nicholas Cinco 0 18 0.6840 0.6156
37 Karen Coleman 0 15 0.6830 0.5123
38 David Dupree 0 19 0.6828 0.6487
39 Bryson Scott 0 15 0.6822 0.5116
40 Bruce Williams 0 19 0.6816 0.6475
41 Kevin Kehoe 0 20 0.6809 0.6809
42 Heather Ellenberger 0 19 0.6805 0.6465
42 Keven Talbert 2 19 0.6805 0.6465
44 Jennifer Bouland 0 17 0.6803 0.5783
45 Pablo Burgosramos 1 19 0.6799 0.6459
46 Ryan Wiggins 0 2 0.6774 0.0677
47 Edward Ford 0 20 0.6773 0.6773
48 Kevin Buettner 1 19 0.6767 0.6429
49 Matthew Schultz 0 17 0.6758 0.5744
50 Brian Hollmann 1 16 0.6743 0.5394
51 Daniel Baller 0 20 0.6738 0.6738
51 George Sweet 2 20 0.6738 0.6738
51 Stephen Bush 2 20 0.6738 0.6738
54 Ramar Williams 1 19 0.6727 0.6391
55 Philip Driskill 1 13 0.6720 0.4368
55 Rafael Torres 0 18 0.6720 0.6048
55 Scott Lefton 0 18 0.6720 0.6048
58 Zechariah Ziebarth 1 18 0.6706 0.6035
59 Robert Sokol 0 12 0.6705 0.4023
60 Ryan Cvik 0 20 0.6702 0.6702
61 Shawn Carden 0 19 0.6692 0.6357
62 Brayant Rivera 0 19 0.6691 0.6356
63 Darryle Sellers 0 17 0.6680 0.5678
64 David Plate 0 16 0.6652 0.5322
65 Earl Dixon 0 16 0.6638 0.5310
66 Antonio Mitchell 1 20 0.6631 0.6631
66 Cade Martinez 1 20 0.6631 0.6631
68 Travis Delagardelle 1 11 0.6627 0.3645
69 Paul Seitz 1 16 0.6621 0.5297
70 Jonathon Leslein 1 19 0.6617 0.6286
71 Daniel Halse 0 16 0.6612 0.5290
72 George Mancini 0 15 0.6604 0.4953
73 Shaun Dahl 1 17 0.6602 0.5612
74 Noah Gosswiller 1 14 0.6600 0.4620
75 Ryan Baum 0 13 0.6582 0.4278
76 Karen Richardson 1 19 0.6579 0.6250
77 Clevante Granville 0 16 0.6560 0.5248
77 Michael Moss 0 20 0.6560 0.6560
77 Richard Beeghley 1 20 0.6560 0.6560
80 Michelle Fraterrigo 0 15 0.6557 0.4918
81 Pamela Augustine 0 16 0.6545 0.5236
82 Jennifer Arty 0 16 0.6542 0.5234
83 Montee Brown 1 20 0.6525 0.6525
84 George Hall 0 3 0.6522 0.0978
85 Nicholas Nguyen 1 18 0.6520 0.5868
86 Daniel Major 0 17 0.6511 0.5534
87 Jeffrey Rudderforth 0 19 0.6504 0.6179
87 Kamar Morgan 1 19 0.6504 0.6179
87 Michael Branson 0 19 0.6504 0.6179
90 Darvin Graham 0 17 0.6496 0.5522
91 Michael Moore 1 16 0.6494 0.5195
92 Christopher Mulcahy 0 19 0.6493 0.6168
92 Jeffrey Zornes 0 19 0.6493 0.6168
94 David Humes 0 20 0.6489 0.6489
95 Steward Hogans 1 15 0.6473 0.4855
96 Brandon Parks 0 15 0.6465 0.4849
97 Bunnaro Sun 0 17 0.6458 0.5489
98 George Brown 1 20 0.6454 0.6454
99 Nahir Shepard 0 17 0.6445 0.5478
100 Brian Patterson 0 18 0.6443 0.5799
101 Vincent Scannelli 0 19 0.6431 0.6109
102 James Small 0 18 0.6429 0.5786
102 Jonathan Smith 1 18 0.6429 0.5786
102 Louie Renew 1 19 0.6429 0.6108
105 Walter Archambo 0 20 0.6418 0.6418
106 Joshua Tracey 1 15 0.6416 0.4812
107 Anthony Brinson 0 16 0.6396 0.5117
108 Jason Jackson 0 19 0.6391 0.6071
109 Rachel Follo 1 20 0.6383 0.6383
110 Cheryl Brown 0 18 0.6375 0.5738
111 Thomas Mccoy 0 18 0.6360 0.5724
112 Paul Presti 0 10 0.6358 0.3179
113 Trevor Macgavin 1 20 0.6348 0.6348
114 Amy Asberry 0 11 0.6347 0.3491
115 Tara Bridgett 0 8 0.6320 0.2528
116 Wayne Schofield 1 19 0.6316 0.6000
117 Yiming Hu 0 12 0.6278 0.3767
118 Kristen White 0 19 0.6268 0.5955
119 Ronald Schmidt 1 17 0.6255 0.5317
120 Jared Kaanga 0 18 0.6240 0.5616
121 Matthew Olguin 0 18 0.6221 0.5599
122 Terry Hardison 0 18 0.6206 0.5585
123 Anthony Rockemore 0 15 0.6186 0.4640
124 Diance Durand 1 19 0.6171 0.5862
125 Robert Lynch 0 17 0.6169 0.5244
126 Desmond Jenkins 0 7 0.6168 0.2159
127 Kenneth Nielsen 0 11 0.6164 0.3390
128 Robert Martin 2 17 0.6154 0.5231
129 Melissa Printup 0 20 0.6135 0.6135
130 Marcus Evans 0 19 0.6128 0.5822
131 Gary Lawrence 1 19 0.6123 0.5817
132 Jordan Forwood 0 7 0.6122 0.2143
133 Jose Torres Mendoza 0 12 0.6111 0.3667
134 David Hadley 0 5 0.6104 0.1526
135 Keisha Vasquez 1 13 0.6100 0.3965
136 Kyle May 0 16 0.6087 0.4870
137 Megan Fitzgerald 0 12 0.6074 0.3644
138 Jack Wheeler 0 18 0.6032 0.5429
139 Wayne Gokey 0 5 0.6026 0.1506
140 Jonathan Knight 0 6 0.6022 0.1807
141 Steven Webster 1 15 0.5980 0.4485
142 Kevin Green 0 6 0.5978 0.1793
143 Derrick Elam 0 10 0.5973 0.2987
144 Ryan Shipley 0 13 0.5939 0.3860
145 Adam Konkle 0 2 0.5938 0.0594
145 Cherylynn Vidal 0 4 0.5938 0.1188
145 Jeffrey Dusza 0 2 0.5938 0.0594
148 Thomas Cho 0 7 0.5888 0.2061
149 Jason Miranda 0 6 0.5824 0.1747
150 Jennifer Wilson 0 6 0.5806 0.1742
151 Richard Conkle 0 16 0.5785 0.4628
152 Sheryl Claiborne-Smith 0 13 0.5659 0.3678
153 Joseph Martin 0 7 0.5607 0.1962
154 Min Choi 0 5 0.5526 0.1382
155 Lawrence Thuotte 1 4 0.5484 0.1097
156 Donald Park 0 3 0.5435 0.0815
157 Gabriel Quinones 0 9 0.5407 0.2433
158 David Kim 0 2 0.5312 0.0531
158 Monte Henderson 0 2 0.5312 0.0531
160 Akilah Gamble 2 12 0.5294 0.3176
161 Jamie Ainsleigh-Wong 0 6 0.5217 0.1565
162 Jay Kelly 0 7 0.5140 0.1799
163 Andrew Gray 0 16 0.5129 0.4103
164 Antonio Chapa 0 1 0.5000 0.0250
164 Brenton Jones 0 1 0.5000 0.0250
164 Vincent Kandian 0 4 0.5000 0.1000
164 Zachary Brosemer 0 1 0.5000 0.0250
168 Ashley Johnson 0 6 0.4831 0.1449
169 Ashlyn Dortch 0 5 0.4805 0.1201
170 Gabrieal Feiling 0 3 0.4474 0.0671
171 Jasprin Smith 0 1 0.3750 0.0188
171 Robert Epps 0 1 0.3750 0.0188

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 20
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Aubrey Conn 4 20 0.7305 0.7305
2 Michael Pacifico 2 20 0.7234 0.7234
3 Robert Gelo 1 20 0.7128 0.7128
4 Chris Papageorge 2 20 0.7092 0.7092
4 Marc Agne 2 20 0.7092 0.7092
6 Christopher Sims 3 20 0.6986 0.6986
6 Jeremy Stieler 1 20 0.6986 0.6986
8 Robert Cunningham 1 19 0.7331 0.6964
9 Randy Dick 1 20 0.6950 0.6950
10 Anthony Bloss 0 20 0.6915 0.6915
10 Jason Schattel 1 20 0.6915 0.6915
12 Nicole Dike 1 20 0.6879 0.6879
13 Kevin Kehoe 0 20 0.6809 0.6809
14 Edward Ford 0 20 0.6773 0.6773
15 Chester Todd 1 19 0.7105 0.6750
16 Daniel Baller 0 20 0.6738 0.6738
16 George Sweet 2 20 0.6738 0.6738
16 Stephen Bush 2 20 0.6738 0.6738
19 Ryan Cvik 0 20 0.6702 0.6702
20 Antonio Mitchell 1 20 0.6631 0.6631
20 Cade Martinez 1 20 0.6631 0.6631
22 Bradley Hobson 1 19 0.6978 0.6629
23 Michael Moss 0 20 0.6560 0.6560
23 Richard Beeghley 1 20 0.6560 0.6560
25 Montee Brown 1 20 0.6525 0.6525
26 William Schouviller 1 19 0.6854 0.6511
27 David Humes 0 20 0.6489 0.6489
28 David Dupree 0 19 0.6828 0.6487
29 Bruce Williams 0 19 0.6816 0.6475
30 Heather Ellenberger 0 19 0.6805 0.6465
30 Keven Talbert 2 19 0.6805 0.6465
32 Pablo Burgosramos 1 19 0.6799 0.6459
33 George Brown 1 20 0.6454 0.6454
34 Kevin Buettner 1 19 0.6767 0.6429
35 Walter Archambo 0 20 0.6418 0.6418
36 Ramar Williams 1 19 0.6727 0.6391
37 Rachel Follo 1 20 0.6383 0.6383
38 Shawn Carden 0 19 0.6692 0.6357
39 Brayant Rivera 0 19 0.6691 0.6356
40 Trevor Macgavin 1 20 0.6348 0.6348
41 Jonathon Leslein 1 19 0.6617 0.6286
42 Karen Richardson 1 19 0.6579 0.6250
43 Jeffrey Rudderforth 0 19 0.6504 0.6179
43 Kamar Morgan 1 19 0.6504 0.6179
43 Michael Branson 0 19 0.6504 0.6179
46 Christopher Mulcahy 0 19 0.6493 0.6168
46 Jeffrey Zornes 0 19 0.6493 0.6168
48 Nicholas Cinco 0 18 0.6840 0.6156
49 Melissa Printup 0 20 0.6135 0.6135
50 Vincent Scannelli 0 19 0.6431 0.6109
51 Louie Renew 1 19 0.6429 0.6108
52 Jason Jackson 0 19 0.6391 0.6071
53 Rafael Torres 0 18 0.6720 0.6048
53 Scott Lefton 0 18 0.6720 0.6048
55 Zechariah Ziebarth 1 18 0.6706 0.6035
56 Wayne Schofield 1 19 0.6316 0.6000
57 Kristen White 0 19 0.6268 0.5955
58 Erik Neumann 1 17 0.6920 0.5882
59 Nicholas Nguyen 1 18 0.6520 0.5868
60 Diance Durand 1 19 0.6171 0.5862
61 Marcus Evans 0 19 0.6128 0.5822
62 Gary Lawrence 1 19 0.6123 0.5817
62 Thomas Brenstuhl 1 17 0.6844 0.5817
64 Brian Patterson 0 18 0.6443 0.5799
65 James Small 0 18 0.6429 0.5786
65 Jonathan Smith 1 18 0.6429 0.5786
67 Jennifer Bouland 0 17 0.6803 0.5783
68 Matthew Schultz 0 17 0.6758 0.5744
69 Cheryl Brown 0 18 0.6375 0.5738
70 Nathan Brown 1 16 0.7155 0.5724
70 Thomas Mccoy 0 18 0.6360 0.5724
72 Darryle Sellers 0 17 0.6680 0.5678
73 Patrick Tynan 2 16 0.7054 0.5643
74 Randolph Tidd 1 16 0.7025 0.5620
75 Jared Kaanga 0 18 0.6240 0.5616
76 Shaun Dahl 1 17 0.6602 0.5612
77 Gregory Brown 2 16 0.7000 0.5600
78 Matthew Olguin 0 18 0.6221 0.5599
79 Terry Hardison 0 18 0.6206 0.5585
80 Daniel Major 0 17 0.6511 0.5534
81 Darvin Graham 0 17 0.6496 0.5522
82 Bunnaro Sun 0 17 0.6458 0.5489
83 Nahir Shepard 0 17 0.6445 0.5478
84 Jack Wheeler 0 18 0.6032 0.5429
85 Brian Hollmann 1 16 0.6743 0.5394
86 David Plate 0 16 0.6652 0.5322
87 Ronald Schmidt 1 17 0.6255 0.5317
88 Earl Dixon 0 16 0.6638 0.5310
89 Paul Seitz 1 16 0.6621 0.5297
90 Daniel Halse 0 16 0.6612 0.5290
91 Clevante Granville 0 16 0.6560 0.5248
92 Robert Lynch 0 17 0.6169 0.5244
93 Pamela Augustine 0 16 0.6545 0.5236
94 Jennifer Arty 0 16 0.6542 0.5234
95 Robert Martin 2 17 0.6154 0.5231
96 Michael Moore 1 16 0.6494 0.5195
97 Karen Coleman 0 15 0.6830 0.5123
98 Anthony Brinson 0 16 0.6396 0.5117
99 Bryson Scott 0 15 0.6822 0.5116
100 George Mancini 0 15 0.6604 0.4953
101 Brittany Pillar 1 13 0.7572 0.4922
102 Michelle Fraterrigo 0 15 0.6557 0.4918
103 Kyle May 0 16 0.6087 0.4870
104 Steward Hogans 1 15 0.6473 0.4855
105 Brandon Parks 0 15 0.6465 0.4849
106 Joshua Tracey 1 15 0.6416 0.4812
107 Anthony Rockemore 0 15 0.6186 0.4640
108 Richard Conkle 0 16 0.5785 0.4628
109 Noah Gosswiller 1 14 0.6600 0.4620
110 Steven Webster 1 15 0.5980 0.4485
111 Michael Linder 0 12 0.7312 0.4387
112 Philip Driskill 1 13 0.6720 0.4368
113 Ryan Baum 0 13 0.6582 0.4278
114 Matthew Blair 0 11 0.7531 0.4142
115 Andrew Gray 0 16 0.5129 0.4103
116 Robert Sokol 0 12 0.6705 0.4023
117 Keisha Vasquez 1 13 0.6100 0.3965
118 Ryan Shipley 0 13 0.5939 0.3860
119 Heather Kohler 0 11 0.6968 0.3832
120 Yiming Hu 0 12 0.6278 0.3767
121 Sheryl Claiborne-Smith 0 13 0.5659 0.3678
122 Jose Torres Mendoza 0 12 0.6111 0.3667
123 Travis Delagardelle 1 11 0.6627 0.3645
124 Megan Fitzgerald 0 12 0.6074 0.3644
125 Amy Asberry 0 11 0.6347 0.3491
126 Kenneth Nielsen 0 11 0.6164 0.3390
127 Steven Maisonneuve 1 9 0.7231 0.3254
128 Paul Presti 0 10 0.6358 0.3179
129 Akilah Gamble 2 12 0.5294 0.3176
130 Jeremy Mounce 0 9 0.6935 0.3121
131 Derrick Elam 0 10 0.5973 0.2987
132 Tara Bridgett 0 8 0.6320 0.2528
133 Gabriel Quinones 0 9 0.5407 0.2433
134 Desmond Jenkins 0 7 0.6168 0.2159
135 Jordan Forwood 0 7 0.6122 0.2143
136 Thomas Cho 0 7 0.5888 0.2061
137 Joseph Martin 0 7 0.5607 0.1962
138 Jonathan Knight 0 6 0.6022 0.1807
139 Jay Kelly 0 7 0.5140 0.1799
140 Kevin Green 0 6 0.5978 0.1793
141 Jason Miranda 0 6 0.5824 0.1747
142 Jennifer Wilson 0 6 0.5806 0.1742
143 Jamie Ainsleigh-Wong 0 6 0.5217 0.1565
144 David Hadley 0 5 0.6104 0.1526
145 Wayne Gokey 0 5 0.6026 0.1506
146 Ashley Johnson 0 6 0.4831 0.1449
147 Min Choi 0 5 0.5526 0.1382
148 Ashlyn Dortch 0 5 0.4805 0.1201
149 Cherylynn Vidal 0 4 0.5938 0.1188
150 Lawrence Thuotte 1 4 0.5484 0.1097
151 Jeremy Krammes 0 3 0.6957 0.1044
152 Vincent Kandian 0 4 0.5000 0.1000
153 George Hall 0 3 0.6522 0.0978
154 Donald Park 0 3 0.5435 0.0815
155 Terrence Lee 0 2 0.6897 0.0690
156 Ryan Wiggins 0 2 0.6774 0.0677
157 Gabrieal Feiling 0 3 0.4474 0.0671
158 Adam Konkle 0 2 0.5938 0.0594
158 Jeffrey Dusza 0 2 0.5938 0.0594
160 David Kim 0 2 0.5312 0.0531
160 Monte Henderson 0 2 0.5312 0.0531
162 Clayton Grimes 0 1 0.8750 0.0438
163 Tanaysa Henderson 0 1 0.8571 0.0429
164 Brian Holder 0 1 0.7500 0.0375
164 Sandra Carter 0 1 0.7500 0.0375
164 Wallace Savage 0 1 0.7500 0.0375
167 Daniel Gray 0 1 0.6875 0.0344
168 Antonio Chapa 0 1 0.5000 0.0250
168 Brenton Jones 0 1 0.5000 0.0250
168 Zachary Brosemer 0 1 0.5000 0.0250
171 Jasprin Smith 0 1 0.3750 0.0188
171 Robert Epps 0 1 0.3750 0.0188

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 20 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
  mutate(Name = str_to_title(Name))
week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
  mutate(Name = str_to_title(Name))
week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
  mutate(Name = str_to_title(Name))
week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
  mutate(Name = str_to_title(Name))
week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
  mutate(Name = str_to_title(Name))
week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
  mutate(Name = str_to_title(Name))
week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
  mutate(Name = str_to_title(Name))
week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
  mutate(Name = str_to_title(Name))
week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
  mutate(Name = str_to_title(Name))
week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Week.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17, week_18, week_19, week_20) #, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```